Меню и навигация

Меню хранит управляемую структуру навигации: подпись, иконку, изображение, путь и дочерние пункты. Frontend сам решает, как отрисовать эту структуру и какие внутренние маршруты считать допустимыми.

Меню, привязанное к Application

Получение меню по slug

Метод
GET
URL
https://api.gigma.ru/api/counterparty/menus/{slug?}
Авторизация
App Token
Headers
Token: {application_token}
Успешный ответ
200

slug опционален. Если его не передать, backend ищет меню со slug navpanel.

Пример запроса

GET /api/counterparty/menus/navpanel HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Accept: application/json

Ответ

{
    "menuItems": {
        "code": 1,
        "avatar": "https://api.gigma.ru/storage/uploads/default.svg",
        "preview": "https://api.gigma.ru/storage/uploads/default.svg",
        "name": "Главное меню",
        "url": "/catalog",
        "children": [
            {
                "code": 2,
                "avatar": "https://api.gigma.ru/storage/uploads/default.svg",
                "preview": "https://api.gigma.ru/storage/uploads/default.svg",
                "name": "Каталог",
                "url": "/catalog",
                "children": []
            }
        ]
    }
}

url формируется из поля slug пункта меню. avatar и preview получают URL изображения-заглушки, если собственный файл не задан.

Ошибки

  • 401 — App Token отсутствует или недействителен;
  • 404 — меню с таким slug не найдено в текущем Application.

Проектное меню по имени

Получение пунктов проектного меню

Метод
GET
URL
https://api.gigma.ru/api/counterparty/menus/{name}/items
Авторизация
App Token
Headers
Token: {application_token}
Успешный ответ
200

Этот endpoint использует другую модель меню: ищет меню по точному name внутри проекта текущего Application и возвращает его корневые пункты.

Ответ

{
    "menuItems": [],
    "menuItemsCount": 0
}

Ошибки

  • 401 — App Token отсутствует или недействителен;
  • 404 — проектное меню с таким точным именем не найдено.

Используйте один вариант меню последовательно. Не считайте slug application-меню и name проектного меню взаимозаменяемыми.

Безопасный рендеринг

  • сопоставляйте url с разрешёнными маршрутами frontend;
  • не выполняйте значения как JavaScript;
  • сохраняйте возможность показать базовую навигацию, если API вернул 404 или временно недоступен;
  • не кэшируйте меню одного App Token как общее для других приложений.

© 2026 Gigma